#ifndef VECTOR_HPP
#define VECTOR_HPP
#include <GL/gl.h>

union vector {
	friend void glVertex(const vector&);
	private:
		#ifdef __GNUC__
		float v __attribute__((vector_size(16)));
		#endif
		float e[4];
	
	public:
		vector(float a = 0, float b = 0, float c = 0);

		vector(const vector&);
		vector operator=  (const vector&);
		
		vector operator+  (const vector&);
		vector operator+= (const vector&);
		
		vector operator-  (const vector&);
		vector operator-= (const vector&);

		float  operator*  (const vector&);
		
		bool operator== (const vector&);
		bool operator!= (const vector&);

		bool operator<= (const vector&);
		bool operator<  (const vector&);

		bool operator>= (const vector&);
		bool operator>  (const vector&);
};

void glVertex(const vector&);
#endif
